<!-- 行比率 -->

<template>
  <RowSlot :label="label" :bind="bind" :sort="sort" :exportTrans="exportTrans" diyClass="ReportWork-OurRowRate">
    <template #default="{ row }">
      <div v-if="row[bind] === 0">
        <span>0%</span>
        <!-- <i class="el-icon-minus" /> -->
      </div>

      <div v-else-if="row[bind] > 0">
        <span>{{ row[bind] }}%</span>
        <i class="el-icon-top" />
      </div>

      <div v-else-if="row[bind] < 0">
        <span>{{ -row[bind] }}%</span>
        <i class="el-icon-bottom" />
      </div>

      <div v-else>-</div>
    </template>
  </RowSlot>
</template>

<script>
// ============================== 导入依赖 ============================== //

import props from './props'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'OurRowRate',

  /**
   * 属性注册 (抽取以便查阅)
   */
  props,

  /**
   * 状态数据 (函数返回对象)
   */
  data() {
    return {
      prefix: '', // 前缀
      suffix: '', // 后缀
    }
  },

  /**
   * 本地方法 (轻量重要在前)
   */
  methods: {
    /**
     * 获取文本
     */
    getText() {
      // 此方法不可删，标识该组件可导出
    },

    /**
     * 导出的转换方法
     */
    exportTrans(row) {
      const value = row[this.bind]
      if (value === 0) return '0%'
      if (value > 0) return `+${value}%`
      if (value < 0) return `${value}%`
      return '-'
    },
  },
}
</script>

<style lang="scss">
@import './index.scss';
</style>
